package com.company.loganalyzer.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

/**
 * 工具输入参数DTO
 * 
 * 统一的工具输入参数封装
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ToolInput {

    /**
     * 查询字符串
     */
    private String query;

    /**
     * 时间范围（YYYY.MM.dd格式）
     */
    private String timeRange;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 结束时间
     */
    private String endTime;

    /**
     * 服务名称
     */
    private String serviceName;

    /**
     * 日志级别
     */
    private String level;

    /**
     * 追踪ID
     */
    private String traceId;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 返回数量限制
     */
    private Integer limit;

    /**
     * 分页参数
     */
    private Integer page;

    /**
     * 分页大小
     */
    private Integer pageSize;

    /**
     * 分组字段
     */
    private List<String> groupBy;

    /**
     * 额外的过滤条件
     */
    private Map<String, Object> filters;

    /**
     * 是否包含详细信息
     */
    private Boolean includeDetails;
}